using GodProject.peoples;

namespace GodProject.generators
{
  /// <summary>
  /// Represents interface for people randomizer
  /// </summary>
  interface IPeoplesRandomizer
  {

    /// <summary>
    /// Generates random sex
    /// </summary>
    /// <returns>random sex</returns>
    Sex GenerateRandomSex();

    /// <summary>
    /// Generate random type of human
    /// </summary>
    /// <returns></returns>
    HumanType GenerateRandomType();

    /// <summary>
    /// Generates random human type by sex 
    /// (that's because parents can be male only)
    /// </summary>
    /// <param name="sex">sex of human to be generated</param>
    /// <returns>random human type</returns>
    HumanType GenerateRandomType(Sex sex);

    /// <summary>
    /// Generates random student age
    /// </summary>
    /// <returns>random student age</returns>
    int CalculateRandomStudentAge();

    /// <summary>
    /// Generates random parent's age
    /// </summary>
    /// <returns>random parent's age</returns>
    int CalculateRandomParentAge();
    
    /// <summary>
    /// Generates random child count
    /// </summary>
    /// <returns>random child count</returns>
    int CalculateRandomChildCount();

    /// <summary>
    /// Generates random avg marks
    /// </summary>
    /// <returns>random avg marks</returns>
    double CalculateRandomAvgMarks();

    /// <summary>
    /// Generates random cool parent's money
    /// </summary>
    /// <returns>random cool parent's money</returns>
    double CalculateRandomMoney();

  }
}